package com.zuipin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zuipin.entity.NewsInfo;
import com.zuipin.util.Pagination;
import com.zuipin.vo.BackNewsInfoDetailVo;
import com.zuipin.vo.BackNewsInfoVo;
import com.zuipin.vo.NewsInfoListVo;
import com.zuipin.vo.NewsInfoSearchVo;

/**
 * 
 * NewsInfoMapper数据库操作接口类
 * 
 **/
@Mapper
public interface NewsInfoMapper {
	
	/**
	 * 
	 * 查询（根据主键ID查询）
	 * 
	 **/
	NewsInfo selectByPrimaryKey(@Param("id") Long id);
	
	/**
	 * 查询（根据主键ID查询）过滤删除的
	 * @param id
	 * @return
	 */
	NewsInfo selectById(@Param("id") Long id);
	
	/**
	 * 
	 * 删除（根据主键ID删除）
	 * 
	 **/
	int deleteByPrimaryKey(@Param("id") Long id);
	
	/**
	 * 
	 * 添加
	 * 
	 **/
	int insert(NewsInfo record);
	
	/**
	 * 
	 * 添加 （匹配有值的字段）
	 * 
	 **/
	int insertSelective(NewsInfo record);
	
	/**
	 * 
	 * 修改 （匹配有值的字段）
	 * 
	 **/
	int updateByPrimaryKeySelective(NewsInfo record);
	
	/**
	 * 
	 * 修改（根据主键ID修改）
	 * 
	 **/
	int updateByPrimaryKey(NewsInfo record);
	
	/**
	 * 
	 * 查询（根据NewsInfoSearchVo 查询新闻列表-分页）
	 * 
	 */
	List<BackNewsInfoVo> searchNewsInfoAllByBack(@Param("search") NewsInfoSearchVo search, @Param("page") Pagination page);
	
	/**
	 * 
	 * 后台查询新闻详情
	 * 
	 */
	BackNewsInfoDetailVo findNewsInfoDetail(@Param("sysId") Long sysId, @Param("id") Long id);
	
	/**
	 * 
	 * 后台修改新闻详情(ID)
	 * 
	 */
	int updateBackNewsInfoDetail(NewsInfo record);
	
	/**
	 * 
	 * (前台)查看新闻列表
	 * 
	 */
	List<NewsInfoListVo> getNewsInfoList(@Param("sysId") Long sysId, @Param("hotNewsTag") Integer hotNewsTag, @Param("newsTypeId") Long newsTypeId,
			@Param("taggingId") Long taggingId, @Param("page") Pagination page);
	
	/**
	 * 修改状态
	 * @param id
	 * @param newsStatus
	 * @return
	 */
	int modifyNewsInfoStatus(@Param("id") Long id, @Param("newsStatus") Integer newsStatus);
	
	/**
	 * 
	 * 增加真实阅读量(同时也会增加虚拟的)
	 * 
	 */
	int addRealReadNum(@Param("id") Long id);
}